package com.opal.jx.service;

import com.opal.jx.entity.table.JxAssessBzcj;
import com.opal.jx.entity.table.JxAssessBzcjZg;
import com.opal.jx.entity.table.JxDept;
import com.opal.jx.entity.table.JxEmp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface JxAssessCommonService {

    /**
     * 查询员工表
     * @param pkDept  部门编码
     * @return 员工资料以及所属组长、主管的名字
     */
    List<JxEmp> selectEmpReturnLead(String pkDept);

    /**
     * 查询包装车间-组长的信息(包括所属主管名字)：用于初始化包装车间组长绩效考核的数据
     * @param postId
     * @param pkDept
     * @return
     */
    List<JxAssessBzcj> jxAssessCommonMapper(String postId, String pkDept);



    /**
     * 根据部门和主管的岗位名称获取所有当前部门的主管信息
     * SELECT * from (SELECT id,emp_code,emp_name,emp_kezhang,post_id FROM  jx_emp) a
     * inner join (select id jid,`name` from jx_post where pk_dept='1002O110000000000MMQ' and name in ('产线主管','辅助主管','总计划主管') ) b
     * on a.post_id =b.jid
     * @param pkDept
     * @param postNames
     * @return
     */
    List<JxEmp>  selectDeptAllZhuGuan(@Param("pkDept")String pkDept, @Param("postNames") List<String> postNames);


    /**
     * 通过模糊查询岗位名称获取员工数据：如   "%组长%"
     * @param postName
     * @return
     */
    List<JxEmp>  selectEmpByLikePostName(String postName,String pkDept);

    /**
     * 据主管工号找辅助杂工(搬运工、清洁工)，写个通用的:1、获取当前部门的所有辅助主管，2、然后去除辅助主管、辅助组长、辅助人员，剩下来的就是杂工
     * @param postId
     * @param pkDept
     * @param ps   辅助主管、辅助组长、辅助人员的岗位id
     * @return
     */
    List<JxEmp> selectFuZhuZaGongInfo(Long postId, String pkDept,List<String> ps);

    /**
     * 查询所有的部门信息
     * @return
     */
    List<JxDept> getAllJxDeptService();

    /**
     * 根据组织查询部门
     * @return
     */
    List<JxDept> getJxDeptByPkOrg(String pkOrg);

    /**
     * 查询当年当月主管的绩效考核数据
     * @param year
     * @param month
     * @return
     */
    List<JxAssessBzcjZg> getBzcjZhuGuanJxAssess(Integer year, Integer month);

    /**
     * 根据：年、月来查询非总计划主管的绩效数据
     * @param year
     * @param month
     * @return
     */
    List<JxAssessBzcjZg> getCxAndFzAssessDataByYearAndMonth(Integer year, Integer month);
}
